
这个参考书目列出了本书中提到、采用或引用的资源。如今，许多编程的进步都在线上论坛上。因此，除了更传统的书籍和文章之外，发现相当多的Web站点也就不足为奇了。我们并不认为这里的清单很全面，不过这些资源的确是与C++模板主题相关的。

Web站点通常比书籍和文章更加不稳定。这里列出的互联网链接将来可能无效。因此，在以下网站提供了这本书的实际链接列表(希望这个网站是稳定的):

\url{http://www.tmplbook.com}

列出书籍、文章和Web站点之前，先介绍新闻组提供的更具互动性的资源。

\subsubsection*{论坛}
\addcontentsline{toc}{subsection}{论坛}

本书的第一版中，我们将Usenet组(前万维网在线论坛的大集合)作为关于C++编程语言讨论的来源。从那时起，这些群体大多已经消失，但许多其他的在线编程社区已经兴起，其中有几个是为C++开发者服务的。我们在这里列出了一些最受欢迎的:

\begin{itemize}
\item 
关于C和C++(各种语言)的参考信息的Cppreference“wiki”(即，集体编辑)。

\url{http://www.cppreference.com}

\item
Stackoverflow是一个广泛的开发者社区，特别涵盖了C++和C++模板。

\url{https://stackoverflow.com/questions/tagged/c%2b%2b}

\url{https://stackoverflow.com/questions/tagged/c%2b%2b%20templates}

\item
Quora类似于Stackoverflow，但不限于技术讨论。

\url{https://www.quora.com/topic/C++-programming-language}

\item
标准C++基金会是一个非营利组织，由C++标准化委员会的一些杰出成员(尽管这两个组织是独立的)运营，以支持C++编程社区。有助于资助标准化委员会的某些方面的会议，以及CppCon(一个关于C++的主要年度会议)(如果喜欢，强烈推荐读者参加其中)。还包括一个在线论坛目录(以“谷歌组”的形式托管)，这些论坛涵盖了各种C++主题。

\url{https://isocpp.org/forums}

\url{https://cppcon.org}

\item
C和C++用户协会(ACCU)是一个位于英国的组织，面向“对开发和提高编程技能感兴趣的人”。每年会举办一次编程会议，特别关注于C++。

\url{https://www.accu.org}
\end{itemize}

\subsubsection*{图书和网站}
\addcontentsline{toc}{subsection}{图书和网站}

\hspace*{\fill} \\ %插入空行
{[AbrahamsGurtovoyMeta]}

David Abrahams和Aleksey Gurtovoy

C++模板元编程——Boost和Beyond的概念、工具和技术
 
Addison-Wesley, Boston, MA, 2005

\hspace*{\fill} \\ %插入空行
{[AlexandrescuDesign]}

Andrei Alexandrescu

现代C++设计-通用编程和设计模式的应用

Addison-Wesley, Boston, MA, 2001

\hspace*{\fill} \\ %插入空行
{[AlexandrescuDiscriminatedUnions]}

Andrei Alexandrescu

可辨别联合(第I、II、III部分)

C/C++ Users Journal, April/June/August, 2002

\hspace*{\fill} \\ %插入空行
{[AlexandrescuAdHocVisitor]}

Andrei Alexandrescu

泛型编程:类型列表和应用程序

Dr. Dobb’s Journal, February, 2002

\hspace*{\fill} \\ %插入空行
{[AusternSTL]}

Matthew H. Austern

泛型编程和STL——使用和扩展C++标准模板库

Addison-Wesley, Boston, MA, 1999

\hspace*{\fill} \\ %插入空行
{[BartonNackman]}

John J. Barton and Lee R. Nackman

科学与工程C++ —— 高级技术和实例介绍

Addison-Wesley, Boston, MA, 1994

\hspace*{\fill} \\ %插入空行
{[BCCL]}

Jeremy Siek

Boost概念检查库

\url{http://www.boost.org/libs/concept_check/concept_check.htm}

\hspace*{\fill} \\ %插入空行
{[Blitz++]}

Todd Veldhuizen

Blitz++: 面向对象的科学计算

\url{http://blitz.sourceforge.net/}

\hspace*{\fill} \\ %插入空行
{[Boost]}

免费的Boost库，C++库

\url{http://www.boost.org}

\hspace*{\fill} \\ %插入空行
{[BoostAny]}

Kevlin Henney

Boost Any库

\url{http://www.boost.org/libs/any}

\hspace*{\fill} \\ %插入空行
{[BoostFusion]}

Joel de Guzman, Dan Marsden, and Tobias Schwinger

Boost Fusion库

\url{http://boost.org/libs/fusion}

\hspace*{\fill} \\ %插入空行
{[BoostHana]}

Louis Dionne

Boost Hana元编程库

\url{http://boostorg.github.io/hana}

\hspace*{\fill} \\ %插入空行
{[BoostIterator]}

David Abrahams, Jeremy Siek, Thomas Witt

Boost 迭代器

\url{http://www.boost.org/libs/iterator}

\hspace*{\fill} \\ %插入空行
{[BoostMPL]}

Aleksey Gurtovoy 和 David Abrahams

Boost MPL

\url{http://www.boost.org/libs/mpl}

\hspace*{\fill} \\ %插入空
{[BoostOperators]}

David Abrahams

Boost 操作符

\url{http://www.boost.org/libs/utility/operators.htm}

\hspace*{\fill} \\ %插入空
{[BoostTuple]}

Jaakko J{\"a}rvi

Boost 元组库

\url{http://boost.org/libs/tuple}

\hspace*{\fill} \\ %插入空
{[BoostOptional]}

Fernando Luis Cacciola Carballal

Boost Optional库

\url{http://www.boost.org/libs/optional}

\hspace*{\fill} \\ %插入空
{[BoostSmartPtr]}

智能指针库

\url{http://www.boost.org/libs/smart_ptr}

\hspace*{\fill} \\ %插入空
{[BoostTypeTraits]}

类型特性库

\url{http://www.boost.org/libs/type_traits}

\hspace*{\fill} \\ %插入空
{[BoostVariant]}

Eric Friedman 和 Itay Maman

Boost Variant库

\url{http://www.boost.org/libs/variant}

\hspace*{\fill} \\ %插入空
{[BrownSIunits]}

Walter E. Brown

单元计算SI库简介

\url{http://lss.fnal.gov/archive/1998/conf/Conf-98-328.pdf}

\hspace*{\fill} \\ %插入空
{[C++98]}

ISO

C++编程语言的标准

ISO/IEC, Document Number 14882-1998, 1998

\hspace*{\fill} \\ %插入空
{[C++03]}

ISO

C++编程语言的标准

ISO/IEC, Document Number 14882-2003, 2003

\hspace*{\fill} \\ %插入空
{[C++11]}

ISO

C++编程语言的标准

ISO/IEC, Document Number 14882-2011, 2011

\hspace*{\fill} \\ %插入空
{[C++14]}

ISO

C++编程语言的标准

ISO/IEC, Document Number 14882-2014, 2014

\hspace*{\fill} \\ %插入空
{[C++17]}

ISO

C++编程语言的标准

ISO/IEC, Document Number 14882-2017, 2017

\hspace*{\fill} \\ %插入空
{[CacciolaKrzemienski2013]}

Fernando Luis Cacciola Carballal 和 Andrzej Krzemie{\"n}ski

添加实用程序类来表示可选对象的建议

\url{http://wg21.link/n3527}

\hspace*{\fill} \\ %插入空
{[CargillExceptionSafety]}

Tom Cargill

异常处理:错误的安全感

C++ Report, November-December 1994

\hspace*{\fill} \\ %插入空
{[CoplienCRTP]}

James O. Coplien

奇异递归模板模式

C++ Report, February 1995

\hspace*{\fill} \\ %插入空
{[CoreIssue1395]}

C++标准核心问题1395期

\url{http://wg21.link/cwg1395}

\hspace*{\fill} \\ %插入空
{[CzarneckiEiseneckerGenProg]}

Krzysztof Czarnecki 和 Ulrich W. Eisenecker

生成编程——方法、工具和应用

Addison-Wesley, Boston, MA, 2000

\hspace*{\fill} \\ %插入空
{[DesignPatternsGoF]}

Erich Gamma, Richard Helm, Ralph Johnson, 和 John Vlissides

设计模式——可重用面向对象软件

Addison-Wesley, Boston, MA, 1995

\hspace*{\fill} \\ %插入空
{[DosReisMarcusAliasTemplates]}

Gabrial Dos Reis and Mat Marcus

C++中添加模板别名的建议

\url{http://wg21.link/n1449}

\hspace*{\fill} \\ %插入空
{[EDG]}

Edison Design Group

编译器前端的OEM市场

\url{http://www.edg.com}

\hspace*{\fill} \\ %插入空
{[EiseneckerBlinnCzarnecki]}

Ulrich W. Eisenecker, Frank Blinn, 和 Krzysztof Czarnecki

基于Mixin的C++编程

Dr. Dobbs Journal, January, 2001

\hspace*{\fill} \\ %插入空
{[EllisStroustrupARM]}

Margaret A. Ellis 和 Bjarne Stroustrup

The Annotated C++ Reference Manual (ARM)

Addison-Wesley, Boston, MA, 1990

\hspace*{\fill} \\ %插入空
{[GregorJarviPowellVariadicTemplates]}

Douglas Gregor, Jaakko J{\"a}rvi, 和 Gary Powell 

可变参数模板

\url{http://wg21.link/n2080}

\hspace*{\fill} \\ %插入空
{[HenneyValuedConversions]}

Kevlin Henney

值的转换

C++ Report 12(7), July-August 2000

\hspace*{\fill} \\ %插入空
{[OverloadingProperties]}

Jaakko J{\"a}rvi, Jeremiah Willcock, Howard Hinnant, 和 Andrew Lumsdaine

基于类型属性的函数重载

C/C++ Users Journal 12 (6), June, 2003

\hspace*{\fill} \\ %插入空
{[ItaniumABI]}

Itanium C++ ABI

\url{http://itanium-cxx-abi.github.io/cxx-abi/}

\hspace*{\fill} \\ %插入空
{[JosuttisLaunder]}

Nicolai Josuttis

On launder()

\url{https://wg21.link/p0532r0}

\hspace*{\fill} \\ %插入空
{[JosuttisStdLib]}

Nicolai M. Josuttis

C++标准库——教程和参考(第2版)

Addison-Wesley, Boston, MA, 2012

\hspace*{\fill} \\ %插入空
{[KarlssonSafeBool]}

Bjorn Karlsson

安全Bool习语

C++ Source, July, 2004

\hspace*{\fill} \\ %插入空
{[KoenigMooAcc]}

Andrew Koenig 和 Barbara E. Moo

加速C++ —— 实例编程

Addison-Wesley, Boston, MA, 2000

\hspace*{\fill} \\ %插入空
{[LambdaLib]}

Jaakko J{\"a}rvi and Gary Powell

LL, The Lambda Library

\url{http://www.boost.org/libs/lambda}

\hspace*{\fill} \\ %插入空
{[LibIssue181]}

C++库问题181

\url{http://wg21.link/lwg181}

\hspace*{\fill} \\ %插入空
{[LippmanObjMod]}

Stanley B. Lippman

C++对象模型内部

Addison-Wesley, Boston, MA, 1996

\hspace*{\fill} \\ %插入空
{[MeyersCounting]}

Scott Meyers

C++中的计数对象

C/C++ Users Journal, April 1998

\hspace*{\fill} \\ %插入空
{[MeyersEffective]}

Scott Meyers

高效C++ —— 50种改进程序和设计的具体方法(第二版)

Addison-Wesley, Boston, MA, 1998

\hspace*{\fill} \\ %插入空
{[MeyersMoreEffective]}

Scott Meyers

更高效的C++ —— 35种改进程序和设计的新方法

Addison-Wesley, Boston, MA, 1996

\hspace*{\fill} \\ %插入空
{[MoonFlavors]}

David A. Moon

使用Flavor进行面向对象编程

Conference proceedings on Object-oriented programming systems, languages and applications, 1986

\hspace*{\fill} \\ %插入空
{[MTL]}

Andrew Lumsdaine 和 Jeremy Siek

MTL, 矩阵模板库

\url{http://www.osl.iu.edu/research/mtl}

\hspace*{\fill} \\ %插入空
{[MusserWangDynaVeri]}

D. R. Musser 和 C. Wang

C++泛型算法的动态验证

IEEE Transactions on Software Engineering, Vol. 23, No. 5, May 1997

\hspace*{\fill} \\ %插入空
{[MyersTraits]}

Nathan C. Myers

特性:全新的和有用的模板技术

\url{http://www.cantrip.org/traits.html}


\hspace*{\fill} \\ %插入空
{[NewMat]}

Robert Davies

NewMat10, C++中的一个矩阵库

\url{http://www.robertnz.net/nm_intro.htm}


\hspace*{\fill} \\ %插入空
{[NewShorterOED]}

Leslie Brown (Ed.)

新版简明牛津英语词典(第四版)

Oxford University Press, Oxford, 1993


\hspace*{\fill} \\ %插入空
{[POOMA]}

POOMA:一个用于并行科学计算的高性能C++工具包

\url{http://www.nongnu.org/freepooma/}


\hspace*{\fill} \\ %插入空
{[SmaragdakisBatoryMixins]}

Yannis Smaragdakis 和 Don S. Batory

基于Mixin的C++编程

第二届生成与构件软件国际研讨会论文集

Engineering, October, 2000


\hspace*{\fill} \\ %插入空
{[SpicerSFINAE]}

John Spicer

Solving the SFINAE Problem for Expressions

\url{http://wg21.link/n2634}

\hspace*{\fill} \\ %插入空
{[StepanovLeeSTL]}

Alexander Stepanov 和 Meng Lee

标准模板库——惠普实验室技术报告95-11(R.1)

November 14, 1995

\hspace*{\fill} \\ %插入空
{[StepanovNotes]}

Alexander Stepanov

编程笔记

\url{http://stepanovpapers.com/notes.pdf}

\hspace*{\fill} \\ %插入空
{[StroustrupC++PL]}

Bjarne Stroustrup

C++程序设计语言(特别版)

Addison-Wesley, Boston, MA, 2000

\hspace*{\fill} \\ %插入空
{[StroustrupDnE]}

Bjarne Stroustrup

C++的设计与发展

Addison-Wesley, Boston, MA, 1994

\hspace*{\fill} \\ %插入空
{[StroustrupGlossary]}

Bjarne Stroustrup

Bjarne Stroustrup的C++术语表

\url{http://www.stroustrup.com/glossary.html}

\hspace*{\fill} \\ %插入空
{[SutterExceptional]}

Herb Sutter

特殊的C++ —— 47个工程难题，编程问题和解决方案

Addison-Wesley, Boston, MA, 2000

\hspace*{\fill} \\ %插入空
{[SutterMoreExceptional]}

Herb Sutter

更特殊的C++ —— 40个新的工程难题，编程问题和解决方案

Addison-Wesley, Boston, MA, 2001

\hspace*{\fill} \\ %插入空
{[UnruhPrimeOrig]}

Erwin Unruh

原始元程序的质数计算

\url{http://www.erwin-unruh.de/primorig.html}

\hspace*{\fill} \\ %插入空
{[VandevoordeJosuttisTemplates1st]}

David Vandevoorde and Nicolai M. Josuttis

C++模板:完整指南

Addison-Wesley, Boston, MA, 2003

\hspace*{\fill} \\ %插入空
{[VandevoordeSolutions]}

David Vandevoorde

C++的解决方案

Addison-Wesley, Boston, MA, 1998

\hspace*{\fill} \\ %插入空
{[VeldhuizenMeta95]}

Todd Veldhuizen

使用C++模板进行元程序

C++ Report, May 1995























